package blender.makesrna.srna;

import blender.makesdna.sdna.*;

import static blender.makesrna.RnaRna.*;
import static blender.makesrna.RnaAccess.*;
import static blender.makesrna.RnaDefine.*;
import static blender.makesrna.RNATypes.*;
import blender.makesrna.rna_internal_types.*;
import blender.blenlib.*;
import blender.blenkernel.*;

import static blender.makesrna.RnaWm.*;

public class RnaOperatorProperties extends RnaStruct {
	
	public boolean remove_active = false;
	public boolean autoselect = false;
	public boolean active_layer = false;
	public boolean relative_path = false;
	public boolean link = false;
	public boolean instance_groups = false;
	public boolean check_existing = false;
	public boolean copy = false;
	public boolean animation = false;
	public boolean end = false;
	public boolean next = false;
	public boolean reverse = false;
	public boolean center = false;
	public boolean align_active = false;
	public boolean unselected = false;
	public boolean object = false;
	public boolean obdata = false;
	public boolean material = false;
	public boolean texture = false;
	public boolean[] constraint_axis = new boolean[3];
	public String type;
	public String url;
	public String operation;
	public String constraint_orientation;
	public String mode;
	public int nr;
	public int delta;
	
	/* Autogenerated Functions */

	public RnaOperatorProperties(PointerRNA ptr) { super(ptr); }

	private static PropCollectionGetFunc OperatorProperties_rna_properties_get = new PropCollectionGetFunc() {
	public PointerRNA get(CollectionPropertyIterator iter)
	{
		return rna_builtin_properties_get.get(iter);
	}};

	private static PropCollectionBeginFunc OperatorProperties_rna_properties_begin = new PropCollectionBeginFunc() {
	public void begin(CollectionPropertyIterator iter, PointerRNA ptr)
	{

		iter.clear();
		iter.parent= ptr;
		iter.prop= (PropertyRNA)rna_OperatorProperties_rna_properties;

		rna_builtin_properties_begin.begin(iter, ptr);

		if(iter.valid)
			iter.ptr= OperatorProperties_rna_properties_get.get(iter);
	}};

	private static PropCollectionNextFunc OperatorProperties_rna_properties_next = new PropCollectionNextFunc() {
	public void next(CollectionPropertyIterator iter)
	{
		rna_builtin_properties_next.next(iter);

		if(iter.valid)
			iter.ptr= OperatorProperties_rna_properties_get.get(iter);
	}};

	private static PropCollectionEndFunc OperatorProperties_rna_properties_end = new PropCollectionEndFunc() {
	public void end(CollectionPropertyIterator iter)
	{
		rna_iterator_listbase_end.end(iter);
	}};

	private static PropPointerGetFunc OperatorProperties_rna_type_get = new PropPointerGetFunc() {
	public PointerRNA getPtr(PointerRNA ptr)
	{
		return rna_builtin_type_get.getPtr(ptr);
	}};

	/* Operator Properties */
	private static CollectionPropertyRNA rna_OperatorProperties_rna_properties = new CollectionPropertyRNA(
		null, null,
		-1, "rna_properties", 128, "Properties",
		"RNA property collection",
		0,
		PROP_COLLECTION, PROP_NONE|PROP_UNIT_NONE, null, 0, new int[]{0, 0, 0}, 0,
		null, 0, null, null,
		0, -1, null,
		OperatorProperties_rna_properties_begin, OperatorProperties_rna_properties_next, OperatorProperties_rna_properties_end, OperatorProperties_rna_properties_get, null, null, rna_builtin_properties_lookup_string, RnaProperty.RNA_Property
	);

	private static PointerPropertyRNA rna_OperatorProperties_rna_type = new PointerPropertyRNA(
		null, null,
		-1, "rna_type", 524288, "RNA",
		"RNA type definition",
		0,
		PROP_POINTER, PROP_NONE|PROP_UNIT_NONE, null, 0, new int[]{0, 0, 0}, 0,
		null, 0, null, null,
		0, -1, null,
		OperatorProperties_rna_type_get, null, null, null,RnaStruct.RNA_Struct
	);

	static { ListBase tmp = new ListBase();
		ListBaseUtil.BLI_addtail(tmp, rna_OperatorProperties_rna_properties);
		ListBaseUtil.BLI_addtail(tmp, rna_OperatorProperties_rna_type);
	}

	static { ListBase tmp = new ListBase();
	}

	public static StructRNA RNA_OperatorProperties = new StructRNA(
		RnaWindow.RNA_Window, RnaOperator.RNA_Operator,
		null,
		rna_OperatorProperties_rna_properties, rna_OperatorProperties_rna_type,
		null,null,
		"OperatorProperties", 0, "Operator Properties", "Input properties of an Operator",
		17,
		null, rna_OperatorProperties_rna_properties,
		null,
		null,
		rna_OperatorProperties_refine,
		null,
		null,
		null,
		//rna_OperatorProperties_idprops,
		null,
		null, null
	);

}
